Page({
  data: {
    token: '',
    list: {}, // 存储用户信息（昵称、性别等）
    fileList: [], // 头像文件列表
    isLoading: false, // 加载状态锁
    show: false, // 控制性别弹窗显示
    sexActions: [ // 性别选项配置
      { name: '男', value: 1 },
      { name: '女', value: 2 },
      { name: '保密', value: 0 }
    ]
  },

  // ---------------------- 性别选择相关 ----------------------
  // 显示性别选择弹窗
  showSexActionSheet() {
    this.setData({ show: true });
  },

  // 关闭弹窗
  onClose() {
    this.setData({ show: false });
  },

  // 选择性别后处理
  onSexSelect(event) {
    const selected = event.detail; // 选中的性别项（{name, value}）
    const gender = selected.value;

    // 1. 先更新本地显示
    this.setData({
      'list.gender': gender,
      show: false
    });

    // 2. 同步到服务器
    this.saveUserInfo({ gender });
  },

  // ---------------------- 昵称修改相关 ----------------------
  // 跳转到修改昵称页面
  name() {
    const { list } = this.data;
    const nickName = list.nickName || '';
    wx.navigateTo({
      url: `/pages/name/name?nickName=${encodeURIComponent(nickName)}`
    });
  },

  // ---------------------- 头像上传相关 ----------------------
  // 头像上传回调
  afterRead(e) {
    const { file } = e.detail;
    // 上传到服务器（示例逻辑，需替换为实际接口）
    this.uploadAvatar(file);
  },

  // 上传头像到服务器
  uploadAvatar(file) {
    const { token } = this.data;
    if (!token) {
      wx.showToast({ title: '请先登录', icon: 'none' });
      return;
    }

    wx.showLoading({ title: '上传中...' });

    // 构建表单数据（含文件）
    const formData = new FormData();
    formData.append('avatar', file.content); // 假设接口接收avatar字段

    wx.request({
      url: 'http://admin.bsmall.byesame.com/wx/auth/profile', // 头像上传接口
      method: 'POST',
      header: {
        'x-byesame-token': token,
        'Content-Type': 'multipart/form-data' // 文件上传需此类型
      },
      data: formData,
      success: (res) => {
        if (res.data?.errno === 0) {
          wx.showToast({ title: '头像上传成功' });
          // 上传成功后刷新用户信息
          this.getlist();
        } else {
          wx.showToast({ title: res.data?.msg || '上传失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.showToast({ title: '网络错误', icon: 'none' });
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  // ---------------------- 通用方法 ----------------------
  // 保存用户信息到服务器（通用方法：支持性别、昵称等）
  saveUserInfo(data) {
    const { token } = this.data;
    if (!token) {
      wx.showToast({ title: '请先登录', icon: 'none' });
      return;
    }

    wx.showLoading({ title: '保存中...' });

    wx.request({
      url: 'http://admin.bsmall.byesame.com/wx/auth/profile',
      method: 'POST',
      header: { 'x-byesame-token': token },
      data: data, // 动态传入参数（如{gender:1}或{nickname:'xxx'}）
      success: (res) => {
        if (res.data?.errno !== 0) {
          wx.showToast({ title: res.data?.msg || '保存失败', icon: 'none' });
          // 失败时回显服务器数据
          this.getlist();
        }
      },
      fail: () => {
        wx.showToast({ title: '网络错误', icon: 'none' });
        this.getlist();
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  // 获取最新用户信息
  getlist() {
    if (this.data.isLoading) return;
    this.setData({ isLoading: true });

    const { token } = this.data;
    if (!token) {
      console.log('token不存在');
      this.setData({ isLoading: false });
      return;
    }

    wx.showLoading({ title: '加载中...' });

    wx.request({
      url: 'http://admin.bsmall.byesame.com/wx/auth/info',
      method: 'GET',
      header: { 'x-byesame-token': token },
      success: (res) => {
        console.log('用户信息接口返回：', res.data);
        if (res.data?.errno === 0 && res.data.data) {
          this.setData({ 
            list: res.data.data,
            // 同步头像到上传组件（如果有头像URL）
            fileList: res.data.data.avatar ? [{ url: res.data.data.avatar }] : []
          });
        } else {
          wx.showToast({ title: res.data?.msg || '获取信息失败', icon: 'none' });
        }
      },
      fail: (err) => {
        console.error('请求失败', err);
        wx.showToast({ title: '网络错误', icon: 'none' });
      },
      complete: () => {
        wx.hideLoading();
        this.setData({ isLoading: false });
      }
    });
  },
  password(){
    wx.navigateTo({
      url: '/pages/password/password',
    })
  },
phone(){
  wx.navigateTo({
    url: '/pages/phone/phone',
  })
},
bank(){
  wx.switchTab({
    url: '/pages/index/index',
  })
  wx.removeStorageSync('token');

},
  // ---------------------- 生命周期函数 ----------------------
  onLoad() {
    // 初始化token并加载数据
    const token = wx.getStorageSync('token');
    if (token) {
      this.setData({ token }, () => {
        this.getlist();
      });
    } else {
      wx.showToast({ title: '请先登录', icon: 'none' });
      setTimeout(() => {
        wx.navigateTo({ url: '/pages/login/login' });
      }, 1500);
    }
  },

  // 页面显示时刷新数据（包括从其他页面返回）
  onShow() {
    if (this.data.token) {
      this.getlist();
    }
  },

  // 其他生命周期函数
  onReady() {},
  onHide() {},
  onUnload() {},
  onPullDownRefresh() {
    if (this.data.token) {
      this.getlist();
    }
    wx.stopPullDownRefresh();
  },
  onReachBottom() {},
  onShareAppMessage() {}
})